package hu.bme.aut.consulttime.client;

import java.util.List;

import hu.bme.aut.consulttime.entitydtos.TeamDTO;
import hu.bme.aut.consulttime.entitydtos.UserDTO;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface TeamServiceAsync {

	void createTeam(TeamDTO teamDTO, AsyncCallback<Boolean> callback);

	void retrieveTeam(long teamId, AsyncCallback<TeamDTO> callback);

	void deleteTeam(long teamId, AsyncCallback<Boolean> callback);

	void retrieveSemesters(AsyncCallback<List<String>> callback);

	void retrieveTeams(AsyncCallback<List<TeamDTO>> callback);
	
	void retrieveTeams(long projectId, AsyncCallback<List<TeamDTO>> callback);

	void retrieveMembers(long teamId, AsyncCallback<List<UserDTO>> callback);


	void retrieveAvailableStudents(String semesterId,
			AsyncCallback<List<UserDTO>> callback);

	void updateTeamInfos(TeamDTO teamDTO, AsyncCallback<Boolean> callback);

	void updateTeamMembers(TeamDTO teamDTO, AsyncCallback<Boolean> callback);

}
